package com.example.infrastructure.persistent.dao;

import com.example.infrastructure.persistent.po.StrategyAwardPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  抽奖策略奖品明细 Dao 接口
 * </p>
 *
 * @author 三石
 * @since 2024-07-18
 */
@Mapper
public interface IStrategyAwardDao extends BaseMapper<StrategyAwardPO> {

    /** 抽奖策略奖品明细列表 - 测试 */
    List<StrategyAwardPO> queryStrategyAwardList();

    /** 通过策略ID查询该抽奖策略下的奖品列表 */
    List<StrategyAwardPO> queryStrategyAwardListByStrategyId(@Param("strategyId") Long strategyId);

    /** 查询策略奖品配置的规则模型 */
    String queryStrategyAwardRuleModel(StrategyAwardPO strategyAwardReq);

    /** 更新奖品库存消耗记录 */
    void updateStrategyAwardStock(StrategyAwardPO strategyAward);

    /** 根据策略ID+奖品ID的唯一值组合，查询奖品信息 */
    StrategyAwardPO queryStrategyAward(StrategyAwardPO strategyAwardReq);
}
